package jeecg.util;

import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;

import org.apache.commons.io.FileUtils;


public class NumberUtils {

	/**
	 * #.00 补零
	 * */
	public static String formatNumber2(double value) {
		DecimalFormat myFormatter = new DecimalFormat("0.00");
		return myFormatter.format(value);
	}
	
	/**
	 * 将数字转为大写中文
	 * */
	public static String numberToWords(double dnum) {
		String number = "";
		if (dnum < 0)
			dnum = 0 - dnum;
		number = formatNumber2(dnum);

		// 分离整数与小数
		String num = "", dig = "";
		if (number.indexOf(".") == -1) {
			num = number;
			dig = "00";
		} else {
			num = number.split("\\.")[0];
			dig = number.split("\\.")[1];
		}

		// 转换整数部分
		int i = 1;
		int len = num.length();

		String[] dw2 = new String[] { "", "万", "亿" };// 大单位
		String[] dw1 = new String[] { "拾", "佰", "千" };// 小单位
		String[] dw = new String[] { "", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };// 整数部分用
		String[] dws = new String[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };// 小数部分用
		int k1 = 0;// 计小单位
		int k2 = 0;// 计大单位
		String str = "";

		for (i = 1; i <= len; i++) {
			String n = num.substring(len - i, len - i + 1);
			if (n.equals("0")) {
				if (k1 != 0)
					str = str.substring(1, str.length() - 1);

				if (str.length() > 0 && !str.substring(0, 1).equals("零") && !str.substring(0, 1).equals("万") && !str.substring(0, 1).equals("亿")) {
					str = "零" + str;
				} else if (str.equals("")) {
					str = "零";
				}
			}

			str = dw[Integer.valueOf(n)] + str;// 加数字

			if (len - i - 1 >= 0)// 在数字范围内
			{
				if (k1 != 3)// 加小单位
				{
					str = dw1[k1] + str;
					k1++;
				} else// 不加小单位，加大单位
				{
					k1 = 0;
					String temp = str.substring(0, 1);
					if (temp.equals("万") || temp.equals("亿"))// 若大单位前没有数字则舍去大单位
						str = str.substring(1, str.length() - 1);
					str = dw2[k2] + str;
				}
			}

			if (k1 == 3) {// 小单位到千则大单位进一
				k2++;
			}

		}

		if (str.length() > 0 && str.substring(str.length() - 1, str.length()).equals("零")) {
			str = str.substring(0, str.length() - 1);
		}

		if (str.equals("")) {
			str = "零";
		}

		// 转换小数部分
		String strdig = "";
		if (dig.equals("00")) {
			strdig = "整";
		} else {
			for (i = 0; i < dig.length(); i++) {
				String n = dig.substring(i, i + 1);
				if (i == 0 && Integer.valueOf(n) == 0) {
					strdig = "零";
				} else {
					strdig += dws[Integer.valueOf(n)] + (i == 0 ? "角" : "分");// 加数字
				}
			}
		}

		str += "元" + strdig;

		return str;
	}
	
	public static void main(String[] args){
		String searchResultHtml = "大数据量大家了川农在线每次不可见多哈阿桑";
		File file = new File("d:\\ip\\11.txt");
		try {
			FileUtils.writeStringToFile(file , searchResultHtml, "utf-8");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


   
